#pragma once
#include "SingletonBase.h"

class IMsgHookListener
{
public:
	virtual bool OnMsg(WPARAM wparam, LPARAM lParam) = 0;
};

class MsgHook : public pktoon::SingletonBase<MsgHook>
{
public:
	MsgHook(void);
	~MsgHook(void);
	bool Start();
	void Stop();
	void SetListener(IMsgHookListener* val) { mListener = val; }

	void MsgProc(WPARAM wParam,LPARAM lParam);
private:
	HINSTANCE mDllInstance;   
	
	IMsgHookListener* mListener;
};
